package testador;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;

import lexico.Analisador;
import sintatico.Sintatico;

public class Testador {
	
	public static void main(String[] args) {
		
		Sintatico AnalisadorSintatico = new Sintatico();
		
		//String erro = "semErro";
		String erro = "";
		String nome_do_arquivo = "algoritmo_3-3_apostila_LA.txt";
		
		
		// Cria arquivo saida.txt pra salvar resultado e comparar depois
   		File Outputfile = new File("saida.txt");
   		FileOutputStream fos;
   		try {
	   		fos = new FileOutputStream(Outputfile);
	   		PrintStream ps = new PrintStream(fos);	
		    ps.close();					//fechar o arquivo de saida
   		} 
   	   	catch (FileNotFoundException r) {
   	   		r.printStackTrace();
   	   	}
		        
   	   		//Faz analise sintatica
   	   		String programa = ""; 
				try{
					  FileInputStream fstream = new FileInputStream(nome_do_arquivo);
					  DataInputStream in = new DataInputStream(fstream);
					  
					  InputStreamReader isr;
					  isr = new InputStreamReader(in);
					  BufferedReader br = new BufferedReader(isr);
					  String strLine;
					  while ((strLine = br.readLine()) != null)   {
						  programa = programa + strLine + "\n";
					  }
					  in.close();
				} 
				catch (Exception e){
						  System.err.println("Error: " + e.getMessage());
				}
				
				Analisador.setPrograma(programa);

				AnalisadorSintatico.setArquivoSaida("saida.txt");
				AnalisadorSintatico.setArquivoSaidaCorreto(erro + "/saida/" + nome_do_arquivo);
				AnalisadorSintatico.programa();		
		
	}

}
